� Structure’Diagrams’
� Class’Diagram’
� Object’Diagram’
� Package’Diagram’
� Composite’Structure’Diagram’
� Component’Diagram’
� Deployment’Diagram’
� Profile’Diagram’
� Behaviour’Diagrams’
� Use’Case’Diagram’
� Information’Flow’Diagram’
� Activity’Diagram’
� State’Machine’Diagram’
� Interaction’Diagram’
� Sequence’Diagram’
� And’More!!!’
UML’Covers…’
� Use’Case'(Model)’Diagram’
� Class’Diagram’
� Sequence’Diagram’
We’Will’Use…’
� Actor’–’Represents’a’role’of’a’user’of’a’system.”
The’actor’is’not’necessarily’human.’
� Use’Case’–’A’usage’scenario.”One’bubble’per’
detailed’scenario’should’be’represented.’Name’
can’be’in’bubble’or’below.’
� Relationship’–’Shows’a’logical’link’between’actor’
and’use’case.”Use’line’or’arrow.’
Use’Case’Diagram’
Use’Case’
Name’
� System’Boundary’–’system’domain’limits’
between’use’case’sets.”’
� Each’box’represents’a’part’of’the’system’and’
use’cases’falling’within’that’system’should’be’
represented’inside’the’box.’
� Inclusion’–’show’relationships’between’use’
cases’with’common’behaviour”
� Extension’–’show’relationships’with’use’cases’
that’have’the’same’goal’but’extra’substeps’
Use’Case’Diagram’A’Advanced’
<<'include>>’
<<'extend>>’
� Provide’a’description’of’the’systems’types’and’
relationships’between’the’components’
� It’is’independent’of’the’implementation’
� Allows’software’engineers’to’evaluate’the’design’of’
the’system’before’development’
Class’Diagram’
� Describes’each’class’in’the’system’
� Class’Name'(bold)’
� All’attributes’with’Types’
� All’methods,’including’arguments’and’
return’types’
� Additional’Details’
� +’public’member’
� #’protected’member’
� A”private’member’
� static’member’
� abstract’operation’
UML’Class’Diagram’
ClassName)
attributeName:type’
methodName():returnType’
Student)
+’studentID:’Integer’
A’password:’String’
#’enroll(Course’course):’Boolean’
� Abstract’Class’names’and’methods’should’be’italic’
� Interface’classes’should’be’labeled’
Abstract’Classes’and’Interfaces’
ClassName(
<
InterfaceName)
� Classes’that’extend’another’class’
� Show’inheritance’between’classes’
‘
� Classes’the’implement’another’class’
� Show’interfaces’and’classes’
Extension’and’Implementation’
� 0..1 ‘ ‘ ‘ ‘Zero’or’One’
� 1 ‘ ‘ ‘ ‘One’Only’
� 0..* ‘ ‘ ‘ ‘Zero’or’More’
� 1..* ‘ ‘ ‘ ‘One’or’More’
� [Int]’ ‘ ‘ ‘Exactly’a’Number’
� [Int]..[Int] ‘ ‘ ‘Exactly’a’Range'(inclusive)’
Multiplicity’
� Shows’the’order’in’which’interactions’should’occur’
and’the’relationships’between’objects’during’
execution’
� Shows’communication’between’classes,’which’can’
aid’in’updating’software’and’refactoring’
UML’Sequence’Diagram’
� Lifeline”
� This’can’represent’a’type’of’object’or’an’
instance’of’an’object.”Instances’should’
be’Underlined’
� This’distinction’is’only’needed’if’you’
have’multiple’named’object’of’the’same’
type’
UML’Sequence’Diagrams’
Student’
myStudent:Student’
� Messages’–’show’function’calls’between’objects’
� Synchronous’Messages’
� Asynchronous’Messages’
� The’message’represents’a’function’or’method’in’the’
receiving’object’
� The’method’signature’should’be’noted’above’the’
message’line’
� Return’value’is’noted’using’a’dotted’line,’with’the’
value’type/name’written’above’the’line’
UML’Sequence’Diagrams’